package org.example.managere.service.feibiao;

import org.example.managere.dto.feibiao.AmAapMotorKnDto;
import org.example.managere.entity.feibiao.AmAapMotorKn;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;

/**
 * 电机知识表服务接口
 */
public interface AmAapMotorKnService {
    
    /**
     * 分页查询所有记录
     *
     * @param pageable 分页参数
     * @return 分页结果
     */
    Page<AmAapMotorKn> findAll(Pageable pageable);
    
    /**
     * 根据ID查询记录
     *
     * @param id 记录ID
     * @return 查询结果
     */
    AmAapMotorKn findById(Integer id);
    
    /**
     * 创建新记录
     *
     * @param dto 记录数据
     * @return 创建的记录
     */
    AmAapMotorKn create(AmAapMotorKnDto dto);
    
    /**
     * 更新记录
     *
     * @param id  记录ID
     * @param dto 更新的数据
     * @return 更新后的记录
     */
    AmAapMotorKn update(Integer id, AmAapMotorKnDto dto);
    
    /**
     * 删除记录
     *
     * @param id 记录ID
     */
    void delete(Integer id);
    
    /**
     * 搜索混合文本
     *
     * @param keyword  关键词
     * @param pageable 分页参数
     * @return 搜索结果
     */
    Page<AmAapMotorKn> searchByHybridData(String keyword, Pageable pageable);
    
    /**
     * 搜索分析结果
     *
     * @param keyword  关键词
     * @param pageable 分页参数
     * @return 搜索结果
     */
    Page<AmAapMotorKn> searchByLlmAnalysis(String keyword, Pageable pageable);
    
    /**
     * 使用LIKE搜索混合文本（备选方法）
     *
     * @param keyword  关键词
     * @param pageable 分页参数
     * @return 搜索结果
     */
    Page<AmAapMotorKn> searchByHybridDataWithLike(String keyword, Pageable pageable);
    
    /**
     * 使用LIKE搜索分析结果（备选方法）
     *
     * @param keyword  关键词
     * @param pageable 分页参数
     * @return 搜索结果
     */
    Page<AmAapMotorKn> searchByLlmAnalysisWithLike(String keyword, Pageable pageable);
} 